package com.aloda.ojquestion.pojo.vo;

import cn.hutool.core.bean.BeanUtil;
import com.aloda.api.domain.User;
import com.aloda.ojcommon.domain.entity.Question;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 题目和对应创建用户详情VO
 * @Author aloda
 * @Date 2025/4/27 8:47
 */
@Data
public class QuestionUserInfoVO {

    /**
     * id
     */
    private Long id;

    /**
     * 标题
     */
    private String title;

    /**
     * 内容
     */
    private String content;

    /**
     * 标签列表（json 数组）
     */
    private String tags;

    /**
     * 题目预设代码
     */
    private String prompt;

    /**
     * 题目答案
     */
    private String answer;

    /**
     * 题目提交数
     */
    private Integer submitNum;

    /**
     * 题目通过数
     */
    private Integer acceptedNum;

    /**
     * 判题用例（json 数组）
     */
    private String judgeCase;

    /**
     * 判题配置（json 对象）
     */
    private String judgeConfig;

    /**
     * 创建用户 id
     */
    private Long userId;

    /**
     * 创建用户昵称
     */
    private String nickname;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    public static QuestionUserInfoVO of(Question question, User user) {
        QuestionUserInfoVO questionUserInfoVO = BeanUtil.toBeanIgnoreError(question, QuestionUserInfoVO.class);
        questionUserInfoVO.setNickname(user.getNickname());
        return questionUserInfoVO;
    }
}
